/**
 * Global.h
 * Coyright (c) 2009 Xiaofeng Gu. All Rights Reserved.
 * Author : Xiaofeng Gu
 *
 * Creation Data : 2009/07/08
 */

#pragma once

#include "Transform.h"
#include "MainFrm.h"
#include "TransformView.h"
#include "GraphicsPlatform.h"

class CTransformDoc;
class CTFTreeView;
class CGraphicsPlatform;

class CSKGlobal
{
public:
	static CMainFrame*			GetMainFrame()
	{ return theApp.GetMainFrame(); }
	
	static CTransformDoc*		GetTargetDoc()
	{ return GetMainFrame()->GetTargetDoc(); }

	static CTransformView*		GetMainView()
	{ return GetMainFrame()->GetMainView(); }

	static CTFTreeView*			GetTreeView()
	{ return GetMainFrame()->GetTreeView(); }

	static CGraphicsPlatform*	GetPlatform()
	{ return GetMainView()->GetPlatform(); }

	static CGraphPlotter*		GetGraphPlotter()
	{ return GetPlatform()->GetGraphPlotter(); }

	static CGraphicsManager*	GetGraphicsManager()
	{ return GetPlatform()->GetManager(); }

	static CGViewer*			GetViewer()
	{ return GetPlatform()->GetViewer(); }

	static CCamera*				GetCamera()
	{ return GetViewer()->GetCamera(); }

	static CSelectSet*			GetSelectSet()
	{ return GetViewer()->GetSelectSet(); }

	static CHighLightSet*		GetHighLightSet()
	{ return GetViewer()->GetHighLightSet(); }

	static CCoordinateSystemGraphics* GetCSGraphics()
	{ return GetViewer()->GetCSGraphics(); }

	static CXMLParser*			GetXMLParser()
	{ return GetTargetDoc()->GetXMLParser(); }

	static CTimelineView*		GetTimelineView()
	{ return GetMainFrame()->GetTimelineView(); }
};